//
//  UIImage+AsyncDraw.swift
//  TJSinaWeibo
//
//  Created by 唐后能 on 16/4/19.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

extension UIImage {

    func tj_asyncDrawImage(var size:CGSize?,bgColor:UIColor?=UIColor.whiteColor(),isCorner:Bool=false,drawFinish:(image:UIImage)->()) {
        
        // 先判断是否有传大小.
        if size == nil {
        
            size = self.size
        }
//        let siez = 
        // 开启上下文.
        UIGraphicsBeginImageContextWithOptions(size!, false, UIScreen.mainScreen().scale)
        
        // 获得绘图上下文区域.
        let rect = CGRect(origin: CGPointZero, size: size!)
        
        // 设置背景色
        bgColor?.setFill()
        // 渲染方式.
        UIRectFill(rect)
        
        // 根据参数,进行圆角的设置.
        if isCorner {
        
            // 创建路径.-->椭圆
            let path = UIBezierPath(ovalInRect: rect)
            
            // 让后面的内容绘制在该路径中.
            path.addClip()
        }
        
        // 进行绘制.
        self.drawInRect(rect)
        
        // 从当前的图形上下文中获取图片.
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        
        // 结束上下文.
        UIGraphicsEndImageContext()
        
        // 回到主线程,用闭包回调给调用方.
        dispatch_async(dispatch_get_main_queue()) { () -> Void in
            drawFinish(image: newImage)
        }
    }
}